var a=1
function foo(){
    console.log(this.a);
}
foo()

/*
 * 1. 浏览器环境 (非严格模式)
- 在浏览器中，全局作用域下用 var 声明的变量会成为 window 对象的属性
- 直接调用 foo() 时， this 指向 window 对象
- 因此 this.a 等价于 window.a ，输出 1 
2. Node.js 环境
- 在 Node.js 中，全局作用域下用 var 声明的变量 不会 成为 global 对象的属性
- 直接调用 foo() 时， this 指向 global 对象
- 但 a 不是 global 的属性，因此 this.a 输出 undefined
*/